home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / WMS.CAB / serverlist.asp < prev    next >
Encoding:
Text File  |  2003-02-21  |  43.7 KB  |  1,141 lines

  1. ∩╗┐<%@ Language=VBScript CODEPAGE=65001 %>
  2. <!--#include file="include/wmsConstants.inc"-->
  3. <!--#include file="include/wmsLocStrings.inc"-->
  4. <!--#include file="include/wmsConnect.inc"-->
  5. <!--#include file="include/wmsFileIO.inc"-->
  6. <!--#include file="include/wmsCommon.inc"-->
  7. <!--#include file="include/wmsServerHash.inc"-->
  8. <!--#include file="include/wmsError.inc"-->
  9. <!--#include file="include/wmsHeader.inc"-->
  10. <!--#include file="include/wmsHelp.inc"-->
  11. <%
  12. '+-------------------------------------------------------------------------
  13. '
  14. '  Microsoft Windows Media
  15. '  Copyright (C) Microsoft Corporation. All rights reserved.
  16. '
  17. '  File:       ServerList.asp
  18. '
  19. '  Contents:
  20. '
  21. '--------------------------------------------------------------------------
  22.  
  23. Dim strOp
  24. Dim dwLastTabIndex
  25. Dim bReload
  26. Dim bEnableAddRemove
  27. Dim bCredentialsCanBeDelegated
  28. Dim strGreetingString
  29. Dim strMeansOfAuthentication
  30.  
  31. strOp = ""
  32. dwLastTabIndex = 0
  33. bReload = FALSE
  34. bEnableAddRemove = TRUE
  35. bCredentialsCanBeDelegated = FALSE
  36.  
  37. Session( "ShowServerList" ) = TRUE
  38. strMeansOfAuthentication = CStr( Request.ServerVariables( "AUTH_TYPE" ) )
  39. if( 0 < Len( strMeansOfAuthentication ) ) then
  40.     if( 0 <> StrComp( "Negotiate", strMeansOfAuthentication, vbTextCompare ) ) then
  41.         if( ( 0 = StrComp( "Basic",     strMeansOfAuthentication, vbTextCompare ) ) or _
  42.             ( 0 = StrComp( "Kerberos",  strMeansOfAuthentication, vbTextCompare ) ) or _
  43.             ( 0 = StrComp( "Digest",    strMeansOfAuthentication, vbTextCompare ) ) ) then
  44.             bCredentialsCanBeDelegated = TRUE
  45.         end if
  46.     end if
  47. end if
  48.  
  49. if( bCredentialsCanBeDelegated ) then
  50.     strGreetingString = L_SERVERLIST_TEXT
  51. else
  52.     strGreetingString = L_SERVERLISTSINGLE_TEXT
  53.     bEnableAddRemove = FALSE
  54.     Session( "ShowServerList" ) = FALSE
  55. end if
  56.  
  57. InitializeFileIO
  58. LoadServerList
  59.  
  60. ' ///////////////////////////////////////////////////////
  61. '
  62. ' Parse the query string.  If it's empty, we may need to 
  63. '  parse the serverlist.[ xml | txt ] file.  We must have an updated
  64. '  server list and IP list in order to build the contents
  65. '  of the page.
  66. '
  67. strOp = UCase( trim( qs("op") ) )
  68. if( "" <> strOp ) then
  69.     if( 0 = StrComp( "Proceed", strOp, vbTextCompare ) ) then
  70.         Session( "bShowSSLWarning" ) = FALSE
  71.         PutNamedPreference "RequireSSL", "0"
  72.         if( 0 < Len( qs( "nevershow" ) ) ) then
  73.             PutNamedPreference "NeverShowSSLWarning", "1"
  74.         else
  75.             PutNamedPreference "NeverShowSSLWarning", "0"
  76.         end if
  77.         LoadServerList
  78.     elseif( 0 = StrComp( "DelXML", strOp, vbTextCompare ) ) then
  79.         DeleteServerList    
  80.     elseif( 0 = StrComp( "debug", strOp, vbTextCompare ) ) then    
  81.         Session( "bShowSSLWarning" ) = TRUE
  82.         Server.Transfer( "/default.asp" )
  83.     end if
  84. end if
  85.  
  86. if( "" <> strOp ) then
  87.     if( 0 = StrComp( "ADD", strOp, vbTextCompare ) ) then
  88.         Dim strRequestedServerName
  89.         Dim strResolvedServerName
  90.         strRequestedServerName = CStr( qs( "server" ) )
  91.         
  92.         if( 255 <= Len( strRequestedServerName ) ) then
  93.             strShortenedName = Mid( trim( strRequestedServerName ), 1, 254 )
  94.             Response.Redirect( "server_add.asp?server=" & strShortenedName & "&error=hostnotavailable" & "&helptopic=" & H_SERVERADDHELPTOPIC )
  95.             Response.Flush
  96.         end if
  97.         
  98.         strResolvedServerName = ""
  99.         if( AddServer( strRequestedServerName, strResolvedServerName ) ) then
  100.             bReload = TRUE
  101.             Response.Redirect( "serverlist.asp?extraArg=defeatCaching" )
  102.         else
  103.             if( 0 = StrComp( qs( "onErr" ), "purgeXML", vbTextCompare ) ) then
  104.                 DeleteServerList
  105.                 if( AddServer( strRequestedServerName, strResolvedServerName ) ) then
  106.                     bReload = TRUE
  107.                     Response.Redirect( "serverlist.asp?extraArg=defeatCaching" )
  108.                 elseif( 0 = StrComp( g_strErrorDescription, "duplicate", vbTextCompare ) ) then
  109.                     Response.Redirect( "serverlist.asp?extraArg=defeatCaching" )
  110.                 end if
  111.             end if
  112.             Response.Redirect( "server_add.asp?server=" & strRequestedServerName & "&error=" & g_strErrorDescription & "&helptopic=" & H_SERVERADDHELPTOPIC )
  113.         end if
  114.     elseif( 0 = StrComp( "REMOVE", strOp, vbTextCompare ) ) then
  115.         RemoveServerFromHash( qs( "hashkey" ) )
  116.         RemoveServerByIndex( CInt( qs( "server" ) ) )
  117.     end if
  118. end if
  119.  
  120. if TRUE = bReload then %>
  121. <%
  122. WriteHTMLHeader( L_WMSWEBADMINTITLE_TEXT ) %>
  123. <script language="JavaScript">
  124. <!--
  125. /*@cc_on @*/
  126.  
  127. ///////////////////////////////////////////////////////////////////////////
  128. function Reload()
  129. {
  130.     document.location.replace( "serverlist.asp?show=<%= RemoveDangerousCharacters( qs("show") ) %>" );
  131. }
  132.  
  133. ///////////////////////////////////////////////////////////////////////////
  134. function MakeSureImFramed()
  135. {
  136.     <% jsTRY %>
  137. <%
  138. if( brMSIE = g_dwBrowserType ) then %>
  139.         if( window.parent.top )
  140.         {
  141.             window.parent.top.name="sList";
  142.         }
  143.         else
  144.         {
  145.             window.name="sList";
  146.         }
  147.         
  148.         if( document.location == window.parent.top.location )
  149.         {
  150.             window.parent.top.location.replace( "/wmssecure/index.asp?show=<%= RemoveDangerousCharacters( qs("show") ) %>" );
  151.         }
  152. <% else %>
  153.         if( parent )
  154.         {
  155.             parent.document.name="sList";
  156.         }
  157.         else
  158.         {
  159.             window.name="sList";
  160.         }
  161.         
  162.         if( document.location == parent.document.location )
  163.         {
  164.             parent.document.location.replace( "/wmssecure/index.asp?show=<%= RemoveDangerousCharacters( qs("show") ) %>" );
  165.         }
  166.         
  167.         <%
  168. end if %>
  169.     <% jsCATCH %>
  170. }
  171. -->
  172. </script>
  173. </head>
  174. <body 
  175.     oncontextmenu="JavaScript:event.cancelBubble=true;return false;" 
  176.     topmargin="0" 
  177.     leftmargin="0" 
  178.     rightmargin="0" 
  179.     marginwidth="0" 
  180.     marginheight="0" 
  181.     onload="JavaScript:MakeSureImFramed();Reload();" 
  182.     bgcolor="#6699ff">
  183. </body>
  184. </html>
  185. <% 
  186. Response.Flush
  187. Response.End
  188. end if
  189.  
  190. '///////////////////////////////////////////////////////////////////////////
  191. '
  192. '  Purge the XML file
  193. '
  194. Function DeleteServerList
  195.     if( g_FileSysObj.FileExists( g_strXMLPath ) ) then
  196.         g_FileSysObj.DeleteFile( g_strXMLPath )
  197.         CreateNewServerListFile
  198.     end if
  199. End Function
  200.  
  201. '///////////////////////////////////////////////////////////////////////////
  202. '
  203. '  Add the server to the in-memory name and IP address arrays
  204. '
  205. Function AddServer( strRequestedServerName, ByRef strResolvedServerName )
  206.     Dim strIPAddress
  207.     Dim bIsRawIPAddress
  208.     Dim iIP
  209.     Dim i
  210.     Dim bNameExists
  211.     Dim dwNumServersInList
  212.     Dim strEntry
  213.     Dim dwConnectionFailureCode
  214.  
  215.     if( 255 <= Len( strRequestedServerName ) ) then
  216.         dwConnectionFailureCode = WMS_SERVER_UNKNOWN
  217.         g_strErrorDescription = "hostnotavailable"
  218.         AddServer = FALSE
  219.         Exit Function
  220.     end if
  221.     
  222.     ' validate args
  223.     strRequestedServerName = SafeUnescape( Trim( strRequestedServerName ) )
  224.     strResolvedServerName = strRequestedServerName
  225.  
  226.     if( 0 >= Len( strResolvedServerName ) ) then
  227.         AddServer = FALSE
  228.         exit function
  229.     end if
  230.  
  231.     dwConnectionFailureCode = WMS_SERVER_UNKNOWN
  232.     bIsRawIPAddress = FALSE
  233.     
  234.     strResolvedName = ""
  235.  
  236.     on error goto 0
  237.     bIsRawIPAddress = LooksLikeIPv4( strResolvedServerName )
  238.     if( FALSE = bIsRawIPAddress ) then
  239.         bIsRawIPAddress = LooksLikeIPv6( strResolvedServerName )
  240.     end if
  241.     err.clear
  242.     if( bIsRawIPAddress ) then
  243.         if( 0 = StrComp( strResolvedServerName, Application( "strHostIPAddress" ), vbTextCompare ) ) then
  244.             strResolvedServerName = g_strLocalHostName
  245.         else
  246.             strIPAddress = strResolvedServerName
  247.             on error resume next
  248.             strResolvedName = s_WMSAdmin.MachineName( strResolvedServerName )
  249.             if( 0 < Len( strResolvedName ) ) then
  250.                 strResolvedServerName = strResolvedName
  251.                 if( 0 < InStr( strResolvedServerName, "." ) ) then
  252.                     '
  253.                     ' it's safest to use the full router name if an IP address was specified
  254.                     '
  255. '                    strResolvedServerName = GetLongServerName( strResolvedName )
  256.                     strResolvedServerName = GetShortServerName( strResolvedName )
  257.                 end if
  258.             end if
  259.         end if
  260.     else
  261.         on error resume next
  262.         strIPAddress = s_WMSAdmin.ResolveToIP( strResolvedServerName )
  263.     end if
  264.     
  265.     if( 0 <> err.number ) then
  266. '        Session( "dbg" ) = err.number & " " & strResolvedServerName
  267.         g_strErrorDescription = "hostnotavailable"
  268.         AddServer = FALSE
  269.         exit function
  270.     end if
  271.  
  272.     ' Ping the remote server to see if the machine and WMS service exists
  273.     dwConnectionFailureCode = s_WMSAdmin.GetServiceStatus( strResolvedServerName )
  274.  
  275.     if( WMS_HOST_UNAVAILABLE = dwConnectionFailureCode ) then
  276.         g_strErrorDescription = "hostnotavailable"
  277.         AddServer = FALSE
  278.         exit function
  279.     elseif( WMS_SERVICE_UNAVAILABLE = dwConnectionFailureCode ) then
  280.         g_strErrorDescription = "nowms"
  281.         AddServer = FALSE
  282.         exit function
  283.     elseif( WMS_SERVICE_INERROR = dwConnectionFailureCode ) then
  284.         g_strErrorDescription = "serviceerror"
  285.         AddServer = FALSE
  286.         exit function
  287.     end if
  288.  
  289.     Dim objServer
  290.     objServer = empty
  291.  
  292.     if( WMS_SERVICE_STARTED = dwConnectionFailureCode ) then
  293.         call ConnectToNamedServer( strResolvedServerName, "connect", objServer )
  294.         if( empty = objServer ) then
  295.             g_strErrorDescription = "nocred"
  296.             AddServer = FALSE
  297.             Exit Function
  298.         end if
  299.  
  300.         objServer = empty
  301.  
  302.         if( 0 = StrComp( g_strLocalHostIP, strIPAddress, vbTextCompare ) ) then
  303.             strResolvedServerName = g_strLocalHostName
  304.         end if
  305.     else
  306.     end if
  307.  
  308.     Dim bRetVal
  309.     Dim strErrString
  310.     bRetVal = AddServerToXMLDOM( strResolvedServerName, strIPAddress, strErrString )
  311.     if( FALSE = bRetVal ) then
  312.         g_strErrorDescription = strErrString
  313.         if( 0 = Len( g_strErrorDescription ) ) then
  314.             g_strErrorDescription = "E_FAIL"
  315.         end if
  316.     end if
  317.     AddServer = bRetVal
  318.  
  319. End Function
  320.  
  321.  
  322. '////////////////////////////////////////////////////////////////
  323. '
  324. ' If you want to see short NetBios names, then ask the Windows Media Server
  325. '
  326. Function GetShortServerName( strServerLongName )
  327.     if( 255 <= Len( strServerLongName ) ) then
  328.         GetShortServerName = ""
  329.         Exit Function
  330.     end if
  331.     
  332.     on error resume next
  333.     GetShortServerName = strServerLongName
  334.     if( WMS_SERVICE_STOPPED < s_WMSAdmin.GetServiceStatus( strServerLongName ) ) then
  335.         set objWMServer = s_WMSAdmin.Connect( strServerLongName )
  336.         GetShortServerName = objWMServer.Name
  337.     end if
  338. End Function
  339.  
  340.  
  341. '////////////////////////////////////////////////////////////////
  342. '
  343. ' If you want to see fully qualified names, then try using ADSI
  344. '
  345. Function GetLongServerName( strServerName )
  346.     on error resume next
  347.     GetLongServerName = strServerName
  348.  
  349.     ' do not use Server.CreateObject, here
  350.     Set objServer = CreateObject( "WMSServer.Server", strServerName )
  351.     Set objComputer = GetObject( "WinNT://" & strServerName & ",computer" )
  352.     GetLongServerName = objComputer.Name
  353. End Function
  354.  
  355.  
  356. '////////////////////////////////////////////////////////////////
  357. Function SpacesToNonbreak( strStringToChange )
  358.     temp = strStringToChange
  359.     x = InStr( temp, " ")
  360.     Do While( x > 0 )
  361.         SpacesToNonbreak = SpacesToNonbreak & Left( temp, x-1 )
  362.         SpacesToNonbreak = SpacesToNonbreak & " "
  363.         temp = Mid( temp, x+1 )
  364.         x = InStr( temp, " " )
  365.     Loop
  366.     
  367.     SpacesToNonbreak = SpacesToNonbreak + temp
  368. End Function
  369.  
  370. '////////////////////////////////////////////////////////////////
  371. '
  372. ' Generate the server list to be diplayed on the serverlist page
  373. '  We could use an XSL transform instead
  374. '
  375. Sub RenderServerList()
  376.     Dim i
  377.     Dim dwNumServers
  378.     Dim dwNumServersAddedToList
  379.     Dim strEachServerName
  380.     Dim strServerIP
  381.     dwNumServersAddedToList = 0
  382.     on error goto 0
  383.  
  384.     LoadServerList
  385.     dwNumServers = g_dwNumAvailableServers
  386.     bCheckedAnItem = FALSE
  387.  
  388.     %>
  389.     <table align="left" width="550" cellspacing="4" cellpadding="2" border="0" margin-bottom="0" margin-top="0" valign="middle">
  390.     <%
  391.     if( FALSE = bCredentialsCanBeDelegated ) then
  392.             strHashedName = ServerNameToHashKey( g_strLocalHostName, TRUE ) %>
  393.         <tr>
  394.             <td class="serverlistOdd" colspan=2>
  395.                 <input 
  396.                     type="radio" 
  397.                     name="Server" 
  398.                     id="<%= g_strLocalHostName %>" 
  399.                     hashkey="<%= strHashedName %>"
  400.                     align="left" 
  401.                     tabindex="<%= dwLastTabIndex %>" 
  402.                     value=""
  403.                     checked>
  404.                 <a
  405.                     href="JavaScript:OpenBrowserWindow( '<%= strHashedName %>', '<%= Server.HTMLEncode( strServerName ) %>' );"
  406.                     class="serverlistOdd"
  407.                     <% if( FALSE = g_bLocalHostRunningWMS ) then %> style="color:gray" <% end if %> 
  408.                     oncontextmenu="JavaScript:event.cancelBubble=true;return false;"  
  409.                     tabindex="<%= dwLastTabIndex + 1 %>"
  410.                     onmouseover="JavaScript:window.status='<%= RemoveDangerousCharacters( g_strLocalHostName ) %>';return true;" 
  411.                     onmouseout="JavaScript:window.status='';" 
  412.                  ><%= g_strLocalHostName %><br>
  413.                  </a> 
  414.             </td>
  415.         </tr>
  416.     <% else
  417.         dwLastTabIndex = 4
  418.         for i = 0 to ( dwNumServers - 1 )
  419.             bSuccess = GetServerNameAndIPByIndex( i, strEachServerName, strServerIP )
  420.             if( bSuccess ) then
  421.                 if( 0 = StrComp( "localhost", strEachServerName, vbTextCompare ) ) then
  422.                     if( 0 >= Len( g_strLocalHostName ) ) then
  423.                         g_strLocalHostName = Application( "bLocalHostHasWMS" )
  424.                     end if
  425.                     strEachServerName = g_strLocalHostName
  426.                 end if
  427.             end if
  428.  
  429.             strHashedName = ServerNameToHashKey( strEachServerName, TRUE )
  430.             %>
  431.         <tr>
  432.             <td class="serverlist<% if 0 = dwNumServersAddedToList mod 2 then %>Odd<% else %>Even<% end if%>" colspan=2>
  433.                 <input 
  434.                     type="radio" 
  435.                     name="Server" 
  436.                     id="<%= strEachServerName %>" 
  437.                     hashkey="<%= strHashedName %>"
  438.                     align="left" 
  439.                     tabindex="<%= dwLastTabIndex %>" 
  440.                     value=""<% 
  441.                       if ( ( 0 = i ) and ( "" = CStr( qs("server") ) ) ) or _
  442.                          ( 0 = StrComp( Server.URLEncode( strEachServerName ), Server.URLEncode( qs("server") ), vbTextCompare ) ) or _
  443.                          ( ( i = ( dwNumServers - 1 ) ) and ( not bCheckedAnItem ) ) then
  444.                           Response.Write( " checked " )
  445.                           bCheckedAnItem = TRUE
  446.                       end if %> >
  447.                 <a
  448.                     class="serverlist<% if 0 = dwNumServersAddedToList mod 2 then %>Odd<% else %>Even<% end if%>"
  449.             <% if bSuccess then %>
  450.                     href="JavaScript:OpenBrowserWindow( '<%= strHashedName %>', '<%= Server.HTMLEncode( strEachServerName ) %>' );"
  451.             <% else %>
  452.                     style="cursor:default;color:red"
  453.             <% end if %>
  454.                     oncontextmenu="JavaScript:event.cancelBubble=true;return false;"  
  455.                     tabindex="<%= dwLastTabIndex + 1 %>"
  456.                     onmouseover="JavaScript:window.status='<%= RemoveDangerousCharacters( strEachServerName ) %>';return true;" 
  457.                     onmouseout="JavaScript:window.status='';" 
  458.                  ><% 
  459.                     if bSuccess then
  460.                         Response.Write( Server.HTMLEncode( strEachServerName ) )
  461.                     else
  462.                         Response.Write( Server.HTMLEncode( replace( L_SERVERNOTFOUND_TEXT, "___", strEachServerName ) ) )
  463.                     end if %><br>
  464.                  </a> 
  465.             </td>
  466.         </tr><%
  467.             dwNumServersAddedToList = dwNumServersAddedToList + 1
  468.             dwLastTabIndex = dwLastTabIndex + 2
  469.         next
  470.     end if
  471.  
  472.     if( 0 = dwNumServersAddedToList )then
  473.     %>
  474.         <tr>
  475.             <td colspan=2>
  476.                 <center>
  477.                 <span 
  478.                     tabindex=<%= dwLastTabIndex %> 
  479.                     class="defaultcursor" 
  480.                     <% 
  481.                     if bCredentialsCanBeDelegated then
  482.                         if( 0 = StrComp( "accessDenied", g_strErrorDescription, vbTextCompare ) ) then %>
  483.                         <a href="JavaScript:ReplaceXMLFile();" oncontextmenu="JavaScript:event.cancelBubble=true;return false;">
  484.                         <span class="warntext" style="cursor:hand" onClick="JavaScript:void( 0 );">
  485.                         <%= Server.HTMLEncode( L_ACCESSDENIED_TEXT ) %>
  486.                         </span>
  487.                         </a>
  488.                         <%
  489.                         elseif ( 0 = StrComp( "badXML", g_strErrorDescription, vbTextCompare ) ) then %>
  490.                         <a href="JavaScript:ReplaceXMLFile();" oncontextmenu="JavaScript:event.cancelBubble=true;return false;">
  491.                         <span class="warntext" style="cursor:hand" onClick="JavaScript:ReplaceXMLFile();">
  492.                         <%= Server.HTMLEncode( L_BADXMLLINK_TEXT ) %>
  493.                         </span>
  494.                         </a>
  495.                         <% 
  496.                         else 
  497.                         %>
  498.                     onClick="JavaScript:document.location.replace( 'server_add.asp<%= "?helptopic=" & H_SERVERADDHELPTOPIC %>' );">
  499.                     <a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:document.location.replace( 'server_add.asp<%= "?helptopic=" & H_SERVERADDHELPTOPIC %>' );">
  500.                     <span class="warntext" style="cursor:hand"><%= Server.HTMLEncode( L_ADDSERVERS_TEXT ) %></span>
  501.                     </a><%
  502.                         end if
  503.                     end if %>
  504.                 </span>
  505.                 </center>
  506.             </td>
  507.         </tr><%
  508.     end if %>
  509.     </table>
  510.     <%
  511. End Sub
  512.  
  513. on error goto 0
  514. '///////////////////////////////////////////////////////////////////////////
  515. function LooksLikeIPv6( strPotentialIPAddress )
  516.     on error goto 0
  517.     if( 0 < InStr( strPotentialIPAddress, "." ) ) then
  518.         if( 0 < InStr( strPotentialIPAddress, ":" ) ) then
  519.             LooksLikeIPv6 = TRUE
  520.             exit function
  521.         end if
  522.     end if
  523.     
  524.     LooksLikeIPv6 = FALSE
  525. end function
  526.  
  527. '///////////////////////////////////////////////////////////////////////////
  528. function LooksLikeIPv4( strPotentialIPAddress )
  529.  
  530.     Dim strServerName
  531.     Dim dwNumDots
  532.     Dim strCollectedInt
  533.     Dim x
  534.  
  535.     strServerName = strPotentialIPAddress
  536.     dwNumDots = 1
  537.  
  538.     x = InStr( strServerName, "." )
  539.     
  540.     if( 0 = x ) then
  541.         LooksLikeIPv4 = FALSE
  542.         exit function
  543.     end if
  544.  
  545.     temp = Mid( strServerName, 1, x - 1 )
  546.     strCollectedInt = strCollectedInt & temp
  547.     strServerName = Mid( strServerName, x + 1, len( strServerName ) - x )
  548.     x = InStr( strServerName, "." )
  549.  
  550.     Do While( x > 0 )
  551.         temp = Mid( strServerName, 1, x - 1 )
  552.         strCollectedInt = strCollectedInt & temp
  553.         strServerName = Right( strServerName, len( strServerName ) - x )
  554.  
  555.         dwNumDots = dwNumDots + 1        
  556.         if( dwNumDots > 4 ) then
  557.             LooksLikeIPv4 = FALSE
  558.             exit function
  559.         end if
  560.         x = InStr( strServerName, "." )
  561.     Loop    
  562.  
  563.     strCollectedInt = strCollectedInt & strServerName
  564.     
  565.     if( dwNumDots <> 3 ) then
  566.         LooksLikeIPv4 = FALSE
  567.         exit function
  568.     end if
  569.  
  570.     if( FALSE = IsNumeric( strCollectedInt ) ) then
  571.         LooksLikeIPv4 = FALSE
  572.         exit function
  573.     end if
  574.  
  575.     LooksLikeIPv4 = TRUE
  576.     
  577. end function
  578.  
  579. '///////////////////////////////////////////////////////////////////////////
  580. WriteHTMLHeader( L_WMSWEBADMINTITLE_TEXT ) %>
  581. <link rel="stylesheet" type="text/css" href="<%= Session( "cssName" ) %>">
  582. <script language="JavaScript" src="include/WMSCommon.js"></script>
  583. <script language="JavaScript">
  584. <!--
  585. /*@cc_on @*/
  586. var g_bLogOffClickHandled = false;
  587. var g_bInitialized = false;
  588. var g_strLastElement = new String("");
  589.  
  590. <% WriteCommonJSUtils %>
  591.  
  592. ///////////////////////////////////////////////////////////////////////
  593. function ShowSecurity()
  594. {
  595.     <% jsTRY %>
  596.         var win;<%
  597.         strLocalHostWinName = Session( "LocalHostWinName" )
  598.         if( 0 >= Len( strLocalHostWinName ) ) then
  599.             strLocalHostWinName = Request.QueryString( "server" )
  600.             Session( "LocalHostWinName" ) = strLocalHostWinName
  601.         end if
  602.         %>
  603.         var szUrl = new String( "/default.asp?lhwn=<%= strLocalHostWinName %>" );
  604.         var szFeatures = "";
  605.         win = window.open( szUrl, "sList", szFeatures, true );        
  606.         if( win )
  607.         {
  608.             win.focus();
  609.         }
  610.     <% jsCATCH %>
  611. }
  612.  
  613. ///////////////////////////////////////////////////////////////////////////
  614. function ReplaceXMLFile()
  615. {
  616.     <% jsTRY %>
  617.     document.location.replace( "serverlist.asp?op=DelXML" );
  618.     <% jsCATCH %>
  619. }
  620.  
  621. ///////////////////////////////////////////////////////////////////////
  622. function DotsToUnderscores( szInput )
  623. {
  624.     var szOutput;
  625.     <% jsTRY %>
  626.         var i;
  627.         var rgSpaceBreaks;
  628.  
  629.         if( null == szInput )
  630.         {
  631.             return( null );
  632.         }
  633.             
  634.         szOutput = "";
  635.  
  636.         // Filter out encoded space chars
  637.         szInput = SafeUnescape( szInput );
  638.         rgSpaceBreaks = szInput.split( "." );
  639.         for( i = 0; i < rgSpaceBreaks.length; i++ )
  640.         {
  641.             if( rgSpaceBreaks[ i ] != "" )
  642.             {
  643.                 szOutput = szOutput + rgSpaceBreaks[ i ];
  644.                 if( i < rgSpaceBreaks.length - 1 )
  645.                 {
  646.                     szOutput = szOutput + '_';
  647.                 }
  648.             }
  649.         }
  650.  
  651.         szInput = szOutput;
  652.     <% jsCATCH %>
  653.     return( szOutput );
  654. }
  655.  
  656. ///////////////////////////////////////////////////////////////////////
  657. function OpenBrowserWindow( strHashedName, strServerName )
  658. {
  659.     var win = null;
  660.     var szFeatures = "hotkeys,scrollbars,status,menubar,resizable"; //,location";
  661.     var bReplace = true;
  662.     var szUrl;
  663.  
  664.     <% jsTRY %>
  665.         if( strHashedName )
  666.         {
  667.         <% if brMSIE = g_dwBrowserType then %>
  668.             window.MainDiv.style.cursor="Wait";
  669.         <% end if %>
  670.             <% if( TRUE or bCredentialsCanBeDelegated ) then %>
  671.             szUrl = "admin.asp?server=" + strHashedName + "&showSL=true";
  672.             <% end if %>
  673.  
  674.             win = window.open( szUrl, strHashedName, szFeatures, true );
  675.             if( ! win )
  676.             {
  677.                 win = window.open( szUrl, strHashedName, szFeatures, true );
  678.             }
  679.     
  680.             if( win )
  681.             {
  682.                 <% jsTRY %>
  683.                     win.focus();
  684.                 <% jsCATCH %>
  685.                 win.name = strHashedName;
  686.             }
  687.             else
  688.             {
  689.                 window.alert( "<%= RemoveDangerousCharacters( L_UNSPECIFIEDERROR_TEXT ) %>" );
  690.             }
  691.         }
  692.         <% if( brMSIE = g_dwBrowserType ) then %>
  693.         window.MainDiv.style.cursor="Auto";
  694.         <% end if %>
  695.     <% jsCATCH %>
  696. }
  697.  
  698. ///////////////////////////////////////////////////////////////////////
  699. function GetCheckedItemIndex()
  700. {
  701.     <% jsTRY %>
  702.         var i;
  703.         var e;
  704.  
  705.         //if length is defined, iterate over the elements
  706.         if( document.forms.servers.length )
  707.         {
  708.             for( i = 0; i < document.forms.servers.length; i++ )
  709.             {
  710.                 e = document.forms.servers[ i ];
  711.                 if ( e.checked )
  712.                 {  
  713.                     return i;
  714.                 }   
  715.             }
  716.         //length isn't defined, so there's only the dummy element
  717.         }
  718.     <% jsCATCH %>
  719.     return null;
  720. }
  721.  
  722. ///////////////////////////////////////////////////////////////////////
  723. function GetCheckedItem()
  724. {
  725.     <% jsTRY %>
  726.         var i;
  727.         var e;
  728.         
  729.         //if length is defined, iterate over the elements
  730.         if( document.forms.servers.length )
  731.         {
  732.             for( i = 0; i < document.forms.servers.length; i++ )
  733.             {
  734.                 e = document.forms.servers[ i ];
  735.                 if ( e.checked )
  736.                 {  
  737.                     return( e.id );
  738.                 }   
  739.             }
  740.         //length isn't defined, so there's only the dummy element
  741.         }
  742.     <% jsCATCH %>
  743.     return null;
  744. }
  745.  
  746. ///////////////////////////////////////////////////////////////////////
  747. function GetCheckedItemHashKey()
  748. {
  749.     <% jsTRY %>
  750.         var i;
  751.         var e;
  752.         
  753.         //if length is defined, iterate over the elements
  754.         if( document.forms.servers.length )
  755.         {
  756.             for( i = 0; i < document.forms.servers.length; i++ )
  757.             {
  758.                 e = document.forms.servers[ i ];
  759.                 if ( e.checked )
  760.                 {  
  761.                     return( e.getAttribute( "hashkey" ) );
  762.                 }   
  763.             }
  764.         //length isn't defined, so there's only the dummy element
  765.         }
  766.     <% jsCATCH %>
  767.     return null;
  768. }
  769.  
  770. ///////////////////////////////////////////////////////////////////////
  771. function RemoveServer()
  772. {
  773.     <% jsTRY %>
  774.         var strServerName;
  775.         var dwSelectedServer;
  776.         var dwSelectedServerHashKey;
  777.         var strRemoveString;
  778.         
  779.         dwSelectedServer = GetCheckedItemIndex();
  780.         szSelectedServer = GetCheckedItem();
  781.         dwSelectedServerHashKey = GetCheckedItemHashKey();
  782.  
  783.         if( ( 0 > dwSelectedServer ) || ( <%= g_dwNumAvailableServers %> <= dwSelectedServer ) )
  784.         {
  785.             window.alert( "<%= RemoveDangerousCharacters( L_SPECIFYSERVER_TEXT ) %>" );
  786.             return;
  787.         }
  788.  
  789.         strRemoveString = new String( "<%= RemoveDangerousCharacters( L_CONFIRMSERVERREMOVE_TEXT ) %>" );
  790.         strRemoveString = strRemoveString.replace( /___/i, szSelectedServer );
  791.         if( true == window.confirm( strRemoveString ) )
  792.         {
  793.             document.location.replace( "serverlist.asp?op=remove&server=" + dwSelectedServer + "&hashkey=" + dwSelectedServerHashKey );
  794.         }
  795.     <% jsCATCH %>
  796.     return;
  797. }
  798.  
  799. ///////////////////////////////////////////////////////////////////////////
  800. function MakeSureImFramed()
  801. {
  802.     <% jsTRY %>
  803.     <% if( brMSIE = g_dwBrowserType ) then %>
  804.         if( window.parent.top )
  805.         {
  806.             window.parent.top.name="sList";
  807.         }
  808.         else
  809.         {
  810.             window.name="sList";
  811.             if( window.top )
  812.             {
  813.                 window.top.name="sList";
  814.             }
  815.         }
  816.         
  817.         if( document.location == window.parent.top.location )
  818.         {
  819.             window.parent.top.location.replace( "/wmssecure/index.asp?show=<%= RemoveDangerousCharacters( qs("show") ) %>" );
  820.         }
  821.     <% else %>
  822.         if( parent )
  823.         {
  824.             parent.document.name="sList";
  825.         }
  826.         else
  827.         {
  828.             window.name="sList";
  829.         }
  830.         
  831.         if( document.location == parent.document.location )
  832.         {
  833.             parent.document.location.replace( "/wmssecure/index.asp?show=<%= RemoveDangerousCharacters( qs("show") ) %>" );
  834.         }
  835.     <% end if %>
  836.     <% jsCATCH %>
  837. }
  838.  
  839. function LoadNonsecurePage()
  840. {
  841.     <% jsTRY %>
  842.         document.location.replace( "/default.asp?show=true" );
  843.     <% jsCATCH %>
  844. }
  845.  
  846. function LoadHandler()
  847. {
  848.     <% jsTRY %>
  849.     <% if brNetscape = g_dwBrowserType then %>
  850.         window.zlock = true;
  851.     <% else %>
  852.         window.MainDiv.style.cursor = "Auto";
  853.     <% end if %>
  854.         window.focus();
  855.     <% jsCATCH %>
  856. }
  857.  
  858. ///////////////////////////////////////////////////////////////////////
  859. function Logoff()
  860. {
  861.     <% jsTRY %>
  862.         if( g_bLogOffClickHandled )
  863.         {
  864.             return;
  865.         }
  866.         
  867.         if( ! window.confirm( "<% if( TRUE = Session( "ShowServerList" ) ) then Response.Write( RemoveDangerousCharacters( L_LOGOFFSLCONF_TEXT ) ) else Response.Write( RemoveDangerousCharacters( L_LOGOFFCONF_TEXT ) ) end if %>" ) )
  868.         {
  869.             return;
  870.         }
  871.         
  872.         g_bLogOffClickHandled = true;
  873.         TellSessionFrameToAbandon();
  874.         var szFeatures = "";
  875.         var szUrl = "";
  876.         var winHelp = window.open( szUrl, "HELP", szFeatures, true );
  877.         window.focus();
  878.         if( winHelp )
  879.         {
  880.             winHelp.close();
  881.         }
  882.         window.focus();
  883.         window.parent.parent.parent.location.replace( document.location.protocol + "//" + document.location.hostname + ":" + document.location.port + "/WMSLogOff.asp?terminate=1&close=1" );
  884.     <% jsCATCH %>
  885. }
  886.  
  887. ///////////////////////////////////////////////////////////////////////
  888. function TellSessionFrameToAbandon()
  889. {
  890.     <% jsTRY %>
  891.         if( window.location == window.parent.location )
  892.         {
  893.             return;
  894.         }
  895.         
  896.         var sessionFrame = null;
  897.         if( window.parent && window.parent.frames )
  898.         {
  899.             sessionFrame = parent.frames[ "WMSSession" ];
  900.         }
  901.         
  902.         if( sessionFrame )
  903.         {
  904.             sessionFrame.location.replace( sessionFrame.location + "&logoff=true" );
  905.             return;
  906.         }
  907.     <% jsCATCH %>
  908. }
  909. -->
  910. </script>
  911. <STYLE>
  912. A:link 
  913. {
  914.     color: #6699FF;
  915.     font-style: normal;
  916.     font-family: Tahoma, Arial, Helvetica, sans-serif
  917. }   
  918. A:visited 
  919. {
  920.     color: #6699FF;
  921.     font-style: normal;
  922.     font-family: Tahoma, Arial, Helvetica, sans-serif
  923. }   
  924. A:hover 
  925. {
  926.     color: #FF0000;
  927.     font-style: normal;
  928.     font-family: Tahoma, Arial, Helvetica, sans-serif
  929. }
  930. Body 
  931. {
  932.     font-family: Tahoma, Arial, Helvetica, sans-serif;
  933.     font-weight: normal;
  934.     font-style: normal;
  935.     color: Black;
  936.     background-color: #6699FF;
  937.     margin-left: 0;
  938.     margin-right: 0;
  939.     margin-top: 0;
  940.     margin-bottom: 0;
  941.     margin: 0
  942. }
  943. </STYLE>
  944. </head>
  945. <body 
  946.     bgcolor="#6699FF" 
  947.     topmargin="0" 
  948.     leftmargin="0" 
  949.     rightmargin="0" 
  950.     bottommargin="0" 
  951.     marginwidth="0" 
  952.     marginheight="0" 
  953.     nowrap 
  954.     onload="JavaScript:MakeSureImFramed();LoadHandler();" 
  955.     oncontextmenu="JavaScript:event.cancelBubble=true;return false;">
  956. <div id="MainDiv">
  957. <form name="servers">
  958. <table bgcolor="#6699FF" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse" height="100%" width="100%"><tr><td><%'
  959. <!-- Main Container Table --> %>
  960. <table width="760" bgcolor="#6699FF" class="splashtable" align="center" valign="middle" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse" width="100%">
  961. <tr height="1" align="left"><td bgcolor="gray" width="760" height="1"></td></tr>
  962. <tr align="left">
  963.     <td>
  964.         <table align="left" background="img/wms_asp_intro_bkgd_slice_01.gif" no-repeat class="splashtable" height="150" width="760" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse" margin-bottom="0" margin-top="0">
  965.         <tr valign="top">
  966.             <!-- User WMSspacer.gif to lay out the Admin text and instructions in relation to branding -->
  967.             <td align="right" valign="top" colspan="2">
  968.                 <table border="0" cellspacing="0" cellpadding="0" border="0">
  969.                 <tr valign="top">
  970.                     <td valign="top">
  971.                         <img src="img/WMSspacer.gif" width="60" height="110" border="0" alt="">
  972.                             <span class="admintext" nowrap>
  973.                                 <%= SpacesToNonbreak( Server.HTMLEncode( L_ADMIN_TEXT ) ) %>
  974.                             </span>
  975.                     </td>
  976.                     <td align="right" width="80">
  977.                         <img src="img/WMSspacer.gif" width="80" height=110 border="0" alt=""> 
  978.                     </td>
  979.                 </tr>
  980.                 </table>
  981.             </td>
  982.         </tr>
  983.         <tr>
  984.             <td align="left" valign="bottom" width="150">
  985.                  
  986.             </td>
  987.             <td align="left" valign="bottom">
  988.                 <table border="0" cellspacing="0" cellpadding="0">
  989.                 <tr>
  990.                     <td>
  991.                         <img src="img/WMSspacer.gif" height=10 border="0" alt=""><span class="helptext"><%= strGreetingString %></span>
  992.                      </td>
  993.                  </tr>
  994.                  </table>
  995.             </td>
  996.         </tr>
  997.         </table>
  998.     </td>
  999. </tr>
  1000. <tr align="left">
  1001.     <td>
  1002.     <table align="left" class="splashtable" width="760" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse" margin-bottom="0" margin-top="0">
  1003.     <tr valign="top">
  1004.         <td background="img/wms_asp_intro_bkgd_slice_04.gif" height="255" no-repeat margin-top="0" width="150" valign="top" nowrap>
  1005.             <!-- Nested Table for Toolbar Style Buttons-->
  1006.             <table align="left" width="150" cellspacing="6" cellpadding="4" border="0" margin-bottom="0" margin-top="0" valign="top"><% 
  1007.             if( bEnableAddRemove ) then
  1008.                 if( 0 < Len( g_strErrorDescription ) ) then
  1009.                     if( 0 = StrComp( g_strErrorDescription, "accessDenied", vbTextCompare ) ) or _
  1010.                       ( 0 = StrComp( g_strErrorDescription, "badXML", vbTextCompare ) ) then
  1011.                         bEnableAddRemove = FALSE
  1012.                     end if
  1013.                 end if
  1014.             end if            
  1015.             %>
  1016. <% if( FALSE = bEnableAddRemove ) then %>
  1017.                 <tr align="center"><td style="font-weight:600"><span style="cursor:default" disabled tabindex=1><img src="img/ServerAdd_disabled_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_ADDSERVERALT_TEXT ) %>"><br><%= SpacesToNonbreak( L_ADDSERVER_TEXT ) %></span></td></tr>
  1018.                 <tr align="center"><td style="font-weight:600"><span style="cursor:default" disabled tabindex=2><img src="img/ServerRemove_disabled_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_REMOVESERVERALT_TEXT ) %>"><br><%= SpacesToNonbreak( L_REMOVESERVER_TEXT ) %></span></td></tr>
  1019.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:DoHelp('/','<%= H_SERVERLISTHELPTOPIC %>');" tabindex=3><img src="img/Help_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_HELPBUTTONALT_TEXT ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_HELP_TEXT ) ) %></a></td></tr>
  1020.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:Logoff();" tabindex=3><img src="/img/WMSLogoff_32.jpg" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_LOGOFFALT_TEXT ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_LOGOFFBTN_TEXT ) ) %></a></td></tr>
  1021. <% elseif ( 0 = g_dwNumAvailableServers ) or ( FALSE = g_bServerlistFileExists ) then %>
  1022.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:document.location.replace( 'server_add.asp<%= "?helptopic=" & H_SERVERADDHELPTOPIC %>' );" tabindex=1><img src="img/ServerAdd_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_ADDSERVERALT_TEXT ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_ADDSERVER_TEXT ) ) %></a></td></tr>
  1023.                 <tr align="center"><td style="font-weight:600"><span style="cursor:default" disabled tabindex=2><img src="img/ServerRemove_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( H_SERVERREMOVEHELPTOPIC ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_REMOVESERVER_TEXT ) ) %></span></td></tr>
  1024.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:DoHelp('/','<%= H_SERVERLISTHELPTOPIC %>');" tabindex=3><img src="img/Help_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_HELPBUTTONALT_TEXT ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_HELP_TEXT ) ) %></a></td></tr>
  1025.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:Logoff();" tabindex=3><img src="/img/WMSLogoff_32.jpg" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_LOGOFFALT_TEXT ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_LOGOFFBTN_TEXT ) ) %></a></td></tr>
  1026. <% else %>
  1027.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:document.location.replace( 'server_add.asp<%= "?helptopic=" & H_SERVERADDHELPTOPIC %>' );" tabindex=1><img src="img/ServerAdd_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_ADDSERVERALT_TEXT ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_ADDSERVER_TEXT ) ) %></a></td></tr>
  1028.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:RemoveServer();" tabindex=2><img src="img/ServerRemove_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_REMOVESERVERALT_TEXT ) %>"><br><%= SpacesToNonbreak( L_REMOVESERVER_TEXT ) %></a></td></tr>
  1029.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:DoHelp('/','<%= H_SERVERLISTHELPTOPIC %>');" tabindex=3><img src="img/Help_32.gif" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_HELPBUTTONALT_TEXT ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_HELP_TEXT ) ) %></a></td></tr>
  1030.                 <tr align="center"><td style="font-weight:600"><a oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:Logoff();" tabindex=3><img src="/img/WMSLogoff_32.jpg" width="32" height="32" border="0" alt="<%= Server.HTMLEncode( L_LOGOFFALT_TEXT ) %>"><br><%= SpacesToNonbreak( Server.HTMLEncode( L_LOGOFFBTN_TEXT ) ) %></a></td></tr>
  1031. <% end if %>
  1032.             </table>
  1033.         </td>
  1034.         <td background="img/wms_asp_intro_content.gif" no-repeat width="610" nowrap>
  1035.             <!-- Nested Table for Server List -->
  1036.             <% RenderServerList() %>
  1037.         </td>
  1038.     </tr>
  1039.     </table>
  1040.     </td>
  1041. </tr>
  1042. <tr align="center" valign="top">
  1043.     <td>
  1044.         <table align="center" valign="top" class="splashtable" width="760" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse;" margin-bottom="0" margin-top="0">
  1045.         <tr valign="top">
  1046.             <td bgcolor="gray" colspan="2" height="1"></td>
  1047.         </tr>
  1048.         <tr>
  1049.             <td background="img/wms_asp_intro_bottomstrip.gif" no-repeat colspan="2" height="24" width="760" valign="top" nowrap>
  1050.                 <table align="top" valign="top" cellspacing="0" cellpadding="0" border="0" margin-bottom="0" margin-top="0">
  1051.                 <tr>
  1052.                     <td align="left">
  1053.             <% if not g_bSecureConnection then %>
  1054.                         <table cellspacing="0" cellpadding="0" height="24" width="100%" hspace="0" vspace="0" ID="Table1">
  1055.                             <tr valign="middle">
  1056.                                 <td>
  1057.                                     <table cellpadding="1" cellspacing="0" border="0" ID="Table2">
  1058.                                     <tr>
  1059.                                         <td>
  1060.                                              
  1061.                                         </td>
  1062.                                         <td nowrap align="absmiddle">
  1063.                                             <a href="JavaScript:LoadNonsecurePage();">
  1064.                                             <img border="0" valign="middle" height="24" width="24" alt="<%= Server.HTMLEncode( L_NONSECWARN_TEXT ) %>" src="img/not_secure_24.gif">
  1065.                                             </a>
  1066.                                         </td>
  1067.                                         <td>
  1068.                                             <span class="defaultcursor"> </span>
  1069.                                         </td>
  1070.                                         <td nowrap valign="middle">
  1071.                                             <span title="<%= Server.HTMLEncode( L_NONSECWARN_TEXT ) %>" onClick="JavaScript:LoadNonsecurePage();" class="warntext" style="cursor:hand" id="nonsecure" valign="middle" href="http://<%= Request.ServerVariables( "HTTP_HOST" ) %>/default.asp" target="sList" border="0">
  1072.                                                 <% if ( brMSIE <> Session( "BrowserType" ) ) then %><a class="warntext" style="cursor:hand" oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:ShowSecurity();"><font color="#ff0000"><% end if %><%= Server.HTMLEncode( L_NONSECWARNALT_TEXT ) %><% if( brMSIE <> Session( "BrowserType" ) ) then %></font></a><% end if %>
  1073.                                             </span>
  1074.                                         </td>
  1075.                                     </tr>
  1076.                                     </table>
  1077.                                 </td>
  1078.                             </tr>
  1079.                         </table>
  1080.             <% else %>
  1081.                         <table cellspacing="0" cellpadding="0" height="24" width="100%" hspace="0" vspace="0" ID="Table3">
  1082.                             <tr valign="middle">
  1083.                                 <td>
  1084.                                     <table cellpadding="1" cellspacing="0" border="0">
  1085.                                     <tr>
  1086.                                         <td>
  1087.                                              
  1088.                                         </td>
  1089.                                         <td nowrap align="absmiddle">
  1090.                                             <a href="JavaScript:ShowSecurity();">
  1091.                                             <img border="0" valign="middle" height="24" width="24" alt="<%= Server.HTMLEncode( L_SECURECONNECTION_TEXT ) %>" src="img/secure_24.gif">
  1092.                                             </a>
  1093.                                         </td>
  1094.                                         <td>
  1095.                                             <span class="defaultcursor"> </span>
  1096.                                         </td>
  1097.                                         <td nowrap valign="middle">
  1098.                                             <span title="<%= Server.HTMLEncode( L_SECURECONNECTION_TEXT ) %>" onClick="JavaScript:LoadNonsecurePage();" class="warntext" style="cursor:hand;color:black" valign="middle" href="http://<%= Request.ServerVariables( "HTTP_HOST" ) %>/default.asp" target="sList" border="0">
  1099.                                                 <% if ( brMSIE <> Session( "BrowserType" ) ) then %><a class="warntext" style="cursor:hand;color:black" oncontextmenu="JavaScript:event.cancelBubble=true;return false;" href="JavaScript:ShowSecurity();"><font color="#ff0000"><% end if %><%= Server.HTMLEncode( L_SECURECONNECTION_TEXT ) %><% if( brMSIE <> Session( "BrowserType" ) ) then %></font></a><% end if %>
  1100.                                             </span>
  1101.                                         </td>
  1102.                                     </tr>
  1103.                                     </table>
  1104.                                 </td>
  1105.                             </tr>
  1106.                         </table>
  1107.             <% end if %>
  1108.                     </td>
  1109.                 </tr>
  1110.                 </table>
  1111.             </td>
  1112.         </tr>
  1113.         <tr>
  1114.             <td bgcolor="gray" colspan="2" height="1"></td>
  1115.         </tr>
  1116.         </table>
  1117.     </td>
  1118. </tr>
  1119. </table>
  1120. </td></tr></table>
  1121. </form>
  1122. </div>
  1123. </body>
  1124. </html>
  1125. <%
  1126. ' Cleanup
  1127. on error resume next
  1128. strOp = empty
  1129. dwLastTabIndex = empty
  1130. bReload = empty
  1131. bEnableAddRemove = empty
  1132. bCredentialsCanBeDelegated = empty
  1133. strGreetingString = empty
  1134. strMeansOfAuthentication = empty
  1135.  
  1136. on error resume next
  1137. WMSServerHashASPCleanup
  1138. WMSConnectASPCleanup
  1139. WMSFileIOASPCleanup
  1140. %>
  1141.